1. Field of the Invention
Embodiments described herein related to computer networks. In particular, embodiments described herein relate to systems and methods for remotely transmitting inputs to processes executing on a computer through a network.
2. Related Art
Computer networks such as a local area network (LAN) or wide area network (WAN) are used to facilitate communication among computer workstations. Often times there is a need for a user to communicate with applications programs executing at a first terminal through a second terminal on the network. For example, a systems operator at a remote terminal may provide inputs to processes executing at a client terminal using systems such as Intel""s LANDesk Management Suite, Hewlett Packard""s HP Openview System and Microsoft""s System Management Server. These systems typically enable a systems operator to, from a remote terminal, view what is displayed on a client terminal in response to an application executing on the client terminal, as well as provide device inputs to the application on the client terminal through peripheral devices at the remote terminal. In multi-tasking environments such as Windows ""95 or Windows NT 4.0, the systems operator may switch the input and display focus between local applications programs executing at the remote terminal and applications programs executing at the client terminal.
When a process executing at the client terminal has the input and display focus of the remote terminal, an application program executing at the remote terminal initiates the transmission of data through the network to the client terminal to emulate peripheral device inputs at the client terminal. In a Win 32 environment, this application program at the remote terminal may initiate transmission of signals to the client terminal in response to device driver messages at the remote terminal through an applications programming interface (API). While focused on receiving display signals from, and transmitting messages to, processes at the client terminal, the remote terminal will typically transmit messages to the client terminal to emulate almost all keystroke inputs entered at the remote terminal. However, certain combinations of keystrokes, such as xe2x80x9cctrl+alt+del,xe2x80x9d xe2x80x9calt+tabxe2x80x9d and xe2x80x9cctrl+escxe2x80x9d are intercepted at the operating system of the remote terminal so that the operating system responds to these keystroke commands locally. Accordingly, regardless of whether the remote terminal is focused on providing inputs to processes executing at the client terminal, the application program executing at the remote terminal will not respond to these combinations of keystrokes by transmitting messages to the client terminal to emulate these keystroke inputs at the client terminal.
To overcome the inability to provide keystroke inputs from the remote terminal, the application program executing at the remote terminal typically provides a feature such as a toolbar button or menu item allowing the systems operator at the remote terminal to initiate the transmission of a message to the client terminal emulating the desired keystroke combination which would otherwise be intercepted at the operating system. There is a need for a more convenient, less awkward, method for transmitting signals to the processes executing at the client terminal to emulate device inputs to these processes.
An embodiment of the present invention is directed to a system and method of transmitting messages from a remote terminal to a client terminal to emulate keystroke inputs to processes executing at the client terminal. The remote terminal executes an operating system having an operating system kernel for responding to detections of keystroke combinations independently of any application program executing on the remote terminal. The remote terminal has logic that detects whether combinations received at the remote terminal are one of the predetermined keystroke combinations and inhibits the operating system from responding to the detected keystroke combinations independently of any application program executing on the remote terminal.